package com.dormms.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.dormms.bean.StuInfo;
import com.dormms.bean.User;
import com.dormms.bean.UserRole;
import com.dormms.dao.DormDao;
import com.dormms.dao.GoodReapirDao;
import com.dormms.dao.StuInfoDao;
import com.dormms.dao.UserDao;
import com.dormms.dao.UserRoleDao;
import com.dormms.service.StuInfoService;

@Service
public class StuInfoServiceImpl implements StuInfoService{
	@Autowired
	private StuInfoDao stuInfoDao;
	@Autowired
	private UserDao userDao;
	@Autowired
	private UserRoleDao userRoleDao;
	@Autowired
	private DormDao dormDao;
	@Autowired
	private GoodReapirDao goodReapirDao;

	public List<StuInfo> queryStuInfoByUserInfo(StuInfo stuInfo) {
		// TODO Auto-generated method stub
		return stuInfoDao.queryStuInfoByStuInfo(stuInfo);
	}
	
	public Integer insertStuInfo(StuInfo stuInfo) {
		// TODO Auto-generated method stub
		//判断当前用户是否已存在，存在则不进行插入操作
		String userid = userDao.isUserExist(stuInfo.getStuId());
		if(stuInfo.getStuId().equals(userid)) {
			return 0;
		}
		//插入到用户表
		User user = new User();
		user.setUsername(stuInfo.getStuId());
		user.setPassword("123456");
		userDao.insertUser(user);
		//插入用户角色表
		UserRole userRole = new UserRole();
		userRole.setUserId(stuInfo.getStuId());
		userRole.setRoleId(3);
		userRoleDao.insertUserRole(userRole);
		//插入到学生表
		stuInfoDao.insertStuInfo(stuInfo);
		return stuInfo.getStuInfoId();
	}
	
	public StuInfo queryStuInfo(String stuId) {
		// TODO Auto-generated method stub
		return stuInfoDao.queryStuInfoByStuId(stuId);
	}
	
	public Integer updateStuInfoBySuper(StuInfo stuInfo) {
		// TODO Auto-generated method stub
		return stuInfoDao.updateStuInfoBySuper(stuInfo);
	}
	
	public StuInfoDao getStuInfoDao() {
		return stuInfoDao;
	}

	public void setStuInfoDao(StuInfoDao stuInfoDao) {
		this.stuInfoDao = stuInfoDao;
	}

	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public UserRoleDao getUserRoleDao() {
		return userRoleDao;
	}

	public void setUserRoleDao(UserRoleDao userRoleDao) {
		this.userRoleDao = userRoleDao;
	}

	public List<StuInfo> queryStuInfoByStuInfoByAdmin(StuInfo stuInfo, Integer dormLocationId) {
		// TODO Auto-generated method stub
		return stuInfoDao.queryStuInfoByStuInfoByAdmin(stuInfo, dormLocationId);
	}

	public Integer updateStuInfo(StuInfo stuInfo) {
		// TODO Auto-generated method stub
		return stuInfoDao.updateStuInfo(stuInfo);
	}

	public Integer deleteStuInfo(String stuId) {
		// TODO Auto-generated method stub
		//删除学生入住记录
		Integer dormId = dormDao.queryDormIdByStuId(stuId);
		dormDao.deleteStuDormInfo(stuId, dormId);
		//删除学生报修信息
		goodReapirDao.deleteGoodRepairByStuId(stuId);
		//删除学生信息表
		stuInfoDao.deleteStuInfo(stuId);
		//删除学生用户角色记录
		userRoleDao.deleteUserRole(stuId);
		//删除学生用户登录表
		return userDao.deleteUser(stuId);
	}

}
